This invention relates generally to standard request-response protocols such as the HyperText Transport Protocol (HTTP), and more specifically to accessing sources of resources, such as files, according to such standard request-response protocols.
The HyperText Transport Protocol (HTTP) has emerged as the standard mechanism by which information is transported over TCP/IP (Transmission Control Protocol/Internet Protocol) compatible networks, such as the Internet, intranets, and extranets. HTTP is more specifically an application-level protocol for distributed, collaborative, hypermedia information systems. It is a generic, stateless, protocol that can be used for many tasks beyond its use for hypertext, such as name servers and distributed object management systems, through extension of its request methods, error codes and headers. It is referred to as a transport protocol, since information is transported according to its specifications, and is also referred to as a request-response protocol, since information is exchanged by a client making a request of a server, which generates a response thereto. HTTP as referred to herein refers generally to any standard of HTTP, and specifically to HTTP/1.1, as described in the HTTP Working Group Internet Draft dated Nov. 18, 1998, prepared,by Fielding, et al., and available on the web site http://www.w3.org.
A common use of HTTP is the transport of information formatted according to a markup language. For example, a popular application of the Internet is the browsing of world-wide-web pages thereof. In such instances, typically the information retrieved is in HyperText Markup Language (HTML) format, as transported according to HTTP. However, other standard markup languages are emerging. One such markup language is eXtensible Markup Language (XML). XML describes a class of data objects that are referred to as XML documents, and partially describes the behavior of computer programs that process them. A primary difference between HTML and XML is that within the former, information content is intertwined with the layout of the content, making their separation difficult, for example. Conversely, within XML a description of the storage layout and logical structure of content is maintained separate from the content itself. However, both XML and HTML are subsets of a markup language known as Standard Generalized Markup Language (SGML). XML as referred to herein refers generally to any standard of XML, and specifically to XML 1.0, as described in the W3C recommendation REC-xml-19980210 dated Feb. 10, 1998, and also available on the web site http://www.w3.org.
HTTP, and hence XML in the context of HTTP, allows for the access of resources. The term resource refers to any piece of information that has a location described by a Uniform Resource Locator (URL) of the form HTTP:// less than domain greater than / less than sub greater than / less than resource greater than . less than extension greater than , where  less than domain greater than  specifies a particular domain,  less than sub greater than  is a subdirectory,  less than resource greater than  is a resource, and  less than extension greater than  can be, for example, .com, .edu, and net, among others. A resource can be, for example, a Web page, a hierarchical collection of information such as folders, a document, a database, a bitmap image, or a computational object. Recently, extensions to HTTP have been proposed that, among other things, allow for better access to resources over HTTP. The extensions are generally referred to as the World-Wide-Web Distributed Authoring and Versioning (WebDAV) extensions to HTTP. The goal of WebDAV, broadly speaking, has been to add remote authoring capabilities to HTTP, so that HTTP can be more convenient as a readable and writable collaborative medium, and not necessarily only a browsing medium for web pages.
WebDAV is generally described in the reference E. James Whitehead, Jr., World-Wide-Web Distributed Authoring and Versioning (WebDAV): An Introduction, in StandardView, Vol. 5, No. 1, March 1997, pages 3-8. WEBDav is also described in the reference Internet Engineering Task Force (IETF) Request for Comment (RFC) 2518, entitled HTTP Extensions for Distributed Authoring, by Y. Goland, E. Whitehead, A. Faizi, S. Carter and D. Jensen, and dated February 1999. Generally, this latter reference specifies a set of methods, headers and content-types ancillary to HTTP/1.1 for the management of resource properties, creation and management of resource collections, name space manipulation, and resource locking (also referred to as collision avoidance).
A limitation to these extensions, and to HTTP generally, is that they do not allow access to a source of a resource, and instead only allow access to a response of the resource. In general, there are two different items addressed by an address known as a Uniform Resource Locator (URL) within HTTP: a response of a resource, and a source of the resource. The response of a resource generally refers to the response of the resource as returned by the resource""s execution or access, while the source of a resource generally refers to the actual collection of bits that when run or accessed returns the response of the resource.
For example, accessing the URL http://server/sub/mypage.com returns a response, which is the response of this resource. Accessing this URL, more specifically, does not allow for the access of all the files stored at this URL, and which make up source of the resource. As another example, accessing the URL http://server/sub/foo.exe returns the response of this resource: the running of the program foo.exe. It does not return the program foo.exe itself; that is, it does not return the collection of bits that make up the program foo.exe. This deficiency in HTTP renders the protocol less useful as a mechanism by which to conduct distributed authoring. For example, a program such as foo.exe may only be run or executed via standard HTTP commands, such that a response is returned. The program cannot be itself easily configured, and thus cannot be easily modified or analyzed. For these and other reasons, there is a need for the present invention.
The invention provides for access of sources of resources within standard request-response protocols such as HTTP. In one embodiment, a method specifies a request for application against a resource, where the resource has a source and a response. Within a TRANSLATE header within the request, there is either a FALSE flag to indicate that the source is desired, or a TRUE flag to indicate that the response is desired. In one embodiment, the TRUE flag is the default for the TRANSLATE header; furthermore, if the TRANSLATE header is missing, it is assumed that the default is used. The request is output according to a predetermined request protocol such as HTTP, and in one embodiment, also according to a predetermined markup language such as XML. In one embodiment, the request is submitted by a client over a network, such as the Internet, an intranet, or an extranet, to a server.
In one embodiment, the server receives the request, and determines, if present, whether the TRANSLATE header specifies TRUE or FALSE. If the former (or if there is no TRANSLATE header), then the server generates and returns the response to the resource. However, if the latter, then the server determines whether an access source bit controlling access to the source of the resource is turned on. If it is, then the source can be accessed by the client; that is, in one embodiment, the source is returned. Otherwise, in one embodiment, an error message is returned to the client.
In another embodiment, access to the source is not given to the client until a second level of security is also checked, at the underlying file system level. In this embodiment, after it is determined that the access source bit for the source of the resource is turned on, it is determined whether a bit for the source at the underlying file system level is also turned on. If so, then access to the source by the client is permitted; that is, in one embodiment, the source is returned. Otherwise, in one embodiment, an error message is returned to the client.
The use of a TRANSLATE header provides embodiments of the invention with advantages not found in the prior art. Primarily, it allows for client access to and specification of the source of a resource, in addition to the response of the resource. For example, the source of a resource foo.exe can be accessedxe2x80x94that is, the collection of bits making up foo .exexe2x80x94as well as the response of the resourcexe2x80x94that is, the running of the program foo.exe. This ability to access both the source and the response of a resource renders HTTP a more useful protocol for distributed authoring of content, as compared to the prior art.
The invention includes computer-implemented methods, machine-readable media, computerized systems, and computers of varying scopes. Other aspects, embodiments and advantages of the invention, beyond those described here, will become apparent by reading the detailed description and with reference to the drawings.